package com.geovis.emergency.spd.biz.system.wrapper;

import cn.hutool.core.bean.BeanUtil;
import com.geovis.emergency.spd.biz.pc.wrapper.BaseEntityWrapper;
import com.geovis.emergency.spd.cache.RegionCache;
import com.geovis.emergency.spd.entity.system.entity.SystemRegion;
import com.geovis.emergency.spd.entity.system.pojo.node.TreeNode;
import com.geovis.emergency.spd.entity.system.pojo.vo.SystemRegionVO;

import java.util.List;
import java.util.Objects;

public class SystemRegionWrapper extends BaseEntityWrapper<SystemRegion, SystemRegionVO> {
    public static SystemRegionWrapper build() {
        return new SystemRegionWrapper();
    }

    @Override
    public SystemRegionVO entityVO(SystemRegion region) {
        SystemRegionVO regionVO = Objects.requireNonNull(BeanUtil.toBean(region, SystemRegionVO.class));
        SystemRegion parentRegion = RegionCache.getByCode(region.getParentCode());
        regionVO.setParentName(parentRegion.getName());
        return regionVO;
    }

    public List<TreeNode> listNodeLazyNodeVO(List<TreeNode> list) {
        return ForestNodeMerger.merge(list);
    }

    public List<SystemRegionVO> listNodeLazyVO(List<SystemRegionVO> list) {
        return ForestNodeMerger.merge(list);
    }
}
